package grape.attend.rest.user.vo;
import grape.base.service.dict.api.IDictService;
import grape.common.rest.vo.BaseIdVo;

import grape.common.service.trans.TransBy;
import grape.common.service.trans.impl.DatetimeTransServiceImpl;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * <p>
 * 用户打卡表
 * </p>
 *
 * @author yangwei
 * @since 2020-05-18
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="用户打卡表数据响应对象")
public class UserClockVo extends BaseIdVo<String> {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "考勤组id")
    private String groupId;

    @ApiModelProperty(value = "班次id")
    private String classeId;

    @ApiModelProperty(value = "用户打卡日期id")
    private String userClockDateId;

    @ApiModelProperty(value = "上班打卡类型字典id")
    private String onClockTypeDictId;

    @TransBy(type = IDictService.trans_dictCode,byFieldName = "onClockTypeDictId")
    @ApiModelProperty(value = "上班打卡类型字典编码")
    private String onClockTypeDictCode;

    @TransBy(type = IDictService.trans_dictName,byFieldName = "onClockTypeDictId")
    @ApiModelProperty(value = "上班打卡类型字典名称")
    private String onClockTypeDictName;

    @ApiModelProperty(value = "上班打卡类型描述信息")
    private String onClockTypeInfo;

    @ApiModelProperty(value = "上班打卡时间")
    private Long onClockAt;

    @TransBy(type = DatetimeTransServiceImpl.trans_datetime,byFieldName = "onClockAt")
    @ApiModelProperty(value = "上班打卡时间文本")
    private String onClockAtTxt;

    @ApiModelProperty(value = "上班是否迟到")
    private Boolean isOnClockLate;

    @ApiModelProperty(value = "上班如果迟到，迟到分钟数")
    private Integer onClockLateTime;

    @ApiModelProperty(value = "下班打卡类型字典id")
    private String offClockTypeDictId;

    @TransBy(type = IDictService.trans_dictCode,byFieldName = "offClockTypeDictId")
    @ApiModelProperty(value = "下班打卡类型字典编码")
    private String offClockTypeDictCode;

    @TransBy(type = IDictService.trans_dictName,byFieldName = "offClockTypeDictId")
    @ApiModelProperty(value = "下班打卡类型字典名称")
    private String offClockTypeDictName;

    @ApiModelProperty(value = "下班打卡类型描述信息")
    private String offClockTypeInfo;

    @ApiModelProperty(value = "下班打卡时间")
    private Long offClockAt;

    @TransBy(type = DatetimeTransServiceImpl.trans_datetime,byFieldName = "offClockAt")
    @ApiModelProperty(value = "下班打卡时间文本")
    private String offClockAtTxt;
    @ApiModelProperty(value = "下班是否早退")
    private Boolean isOffClockLeaveEarly;

    @ApiModelProperty(value = "下班如果早退，早退分钟数")
    private Integer offClockLeaveEarlyTime;

    @ApiModelProperty(value = "备注")
    private String remark;


}
